約 2,724,035 件
https://w.atwiki.jp/atwikimyj/pages/40.html
普通の変数とは違い、メモリのアドレスの値を やり取りして効率のよいデータの参照を行うこと。 $a = $hoge; だと$hogeの分だけメモリを使う。そのため$hogeが 巨大だとその分無駄にメモリを使用することになる。 そこで、$hogeが保存されているアドレスの値を使って 効率的に値を参照させる。 $ref = $hogeのメモリのアドレス; ならば、$hogeがどんなに大きな文字列でもそのアドレスの値の 分しかメモリを消費しない。つまり処理速度も速くなる。 スカラーではあんまり使い道がないかもしれないが、 ハッシュなどでは威力を発揮する。 @hogearray = ( $hoge1, $hoge2 , $hoge3 ); と代入するととっても無駄なのでリファレンスを使うと いいかもしれません。 @hogearray = ( \$hoge1, \$hoge2 , \$hoge3 ); ※あとからリファレンスを実際の値に戻さないといけないけど。 リファレンスを変数に代入する方法 $ref_hoge = \@hoge; ちなみに、リファレンスを画面に表示させると print $ref_hoge HASH(X898303) のような表示になる。上記はハッシュリファレンスの場合。 普通のスカラー変数の場合は SCHOLAR(X898303) などとなる。値取れなくて困ったら printで値をとりましょう。 リファレンスから値を変数に代入する方法 リファレンスの値の取得方法は スカラー、オブジェクトの場合 $hoge = $$ref_hoge 配列の場合は @hoge = @$ref_hoge ハッシュの場合は %hoge = %$ref_hoge リズムファクトリー http //www.rfs.jp/sb/perl/02/10.html
https://w.atwiki.jp/atwikimyj/pages/18.html
Catalystとは perl用のフレームワークである 必要な環境 perl5.8.6以上を必要とする(ヴァージョンにによっては違うかも)。 そのためレンタルサーバで古いバージョンだと動かない。
https://w.atwiki.jp/atwikimyj/pages/21.html
いろんな画像処理が可能なアプリケーション。 画像サイズの判定、リサイズ 画像形式の変更 シャープとかぼかしとかの加工 その他いろいろ。 ●TryThe Homepage perl ImageMagickの説明 http //www.tryhp.net/homeserver16.htm ●jpan tools http //jpan.jp/ja/tools/ImageMagick/.htm インストール 使えるネットサポート でじまさんのレポート http //forum.tsukaeru.net/viewtopic.php?t=1817 これによるとImage MagickというのはUNIXのアプリケーションとperlモジュールの 両方が必要なのかな?と思う。 以下使えるねっとからの転記。 ImageMagickのインストールを再度試してみました。実はソールをコンパイルすると、面倒なことなくあっさりインストールできるようです。以下にインストール手順をあげておきます。 SSHにてサーバにログインします。 適当な作業ディレクトリ(例 /usr/local/src )に移動します。 ImageMagickのソースファイルを取得します。Code wget ftp //ftp.imagemagick.org/pub/ImageMagick/ImageMag... とすると、最新版が得られるはずです。 ダウンロードしてきたファイルを解凍します。先のコマンドで取得したファイルなら、Code tar xzf ImageMagick.tar.gz で解凍できます。 解凍した ImageMagick のディレクトリに移動します。 次のコマンドを実行します。Code ./configure さらに次のコマンドを実行し、ソースをビルドしますCode make ビルドされたファイルをインストールします。Code make install 以上でImageMagickのインストールは完了です。その後、Perl モジュールのインストールを行ってみてください。Perl モジュールのインストールはCode perl -MCPAN -e shell install Image Magick で行えます。 ImageMagickインストールの追記です。先の方法だけですと、インストールしたライブラリが認識されない場合がありますので、以下の作業も行う必要があるかと思います。 SSHでサーバにログインします。 /etc/ld.so.conf ファイルにCode /usr/local/lib という行があるかを確認し、存在しない場合はこれを追加します。Code echo /usr/local/lib /etc/ld.so.conf とすると簡単です。 変更を反映させるため、以下のコマンドを実行します。Code ldconfig 以上でインストールしたImageMagickのライブラリが正しく認識されます。
https://w.atwiki.jp/atwikimyj/pages/39.html
本当にいまさらなのだが、パスワードはハッシュで保存しないとだめよ。 平分で通信、保存なんて絶対ダメよ。 ということで、ハッシュ化。 cpan使います。 install Digest でDigestをインストール。 perl スクリプトで use Digest SHA1; my $pwd_hash = sha1_hex($pwd); これで終わり。 http //www.slogical.co.jp/tech/perl_digestsha1.html
https://w.atwiki.jp/atwikimyj/pages/95.html
FastCGIとはそもそも何か? FastCGIとは仕様を指す言葉で、アプリケーションそのもの ではない。 perl等のインタプリンタ言語の場合、CGIで読み込むたびに コンパイルを行う必要がある。そのコンパイル後のコードを メモリに常駐させてコンパイル処理時間やコストを節約する ことが可能。同じような機能を持つものとしてmod_perlが あるがこれはApache内でperlのコードを保持するが、FastCGI はapacheなどのwebサーバとは別にプロセスを用意し、そこ にコードを保持する。 ゆえにapache以外のwebサーバでも使用可能。 mod_perl2とどっちがいいの? mod_perl(2)とFastCGIどちらを使うか迷うところだが、 FastCGIを使う利点としては mod_perlのようにapacheに強く依存しない Apache以外でも使える デメリットとしては mod_perlの場合はApacheと連携していろいろ可能 (もともとのmod_perlの意義はここにあるらしい) ドキュメントや情報がmod_perlよりが少ない、、 インストール・環境構築 インストールは以下のように行う (1)Fast_CGIアプリケーションをインストール {{ # cd /usr/local/src # wget http //www.fastcgi.com/dist/fcgi.tar.gz # tar xvfz fcgi-2.4.0.tar.gz # cd fcgi-2.4.0 # ./configure # make # make check # make install }} (2)FastCGIのためのPerlモジュールもインストール {{ perl -MCPAN -e install FCGI perl -MCPAN -e install CGI Fast }} (3)Apache用のモジュールもインストール {{{ # wget http //jaist.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz # xvzf mod_fcgid.2.2.tgz # cd mod_fcgid.2.2 このディレクトリ内にある設定ファイルを書き換える。 {{{ # vi Makefile }}} 以下のような箇所を、実際のapache2のパスに書き換える {{{ #top_dir = /usr/local/apache2 top_dir = /usr/lib/httpd }}} ESC , wq で保存してから {{{ # make # make install }}} 完了。
https://w.atwiki.jp/atwikimyj/pages/23.html
文字通りperlで実装するセッション管理。 <参考>CGI Session.pmでセッション管理 http //www.dab.hi-ho.ne.jp/sasa/biboroku/perl/session.html インストール linux上で [root@localhost] perl -MCPAN -e shell cpan install CGI session これで終わり。 利用 perlスクリプト内で use CGI Session qw/-ip_match/; #異なるipからのアクセスは認めない #Tutrial .podは -ip-match ,Session.pmは -ip_match .多分 -ip_match . my $session=CGI Session- new(undef,undef,{Directory= ./.session }); #セッションidの生成 .ディレクトリ.sessionは予め作っておく $session- expire( +1m ); #有効期限の設定.1分間 $session- param( name , john ); #セッション経由で引き渡す項目と値
https://w.atwiki.jp/atwikimyj/pages/30.html
memcachedのインストールまとめ memcachedはapacheなどと同じようにLINUXのアプリケーション。 rpmファイルをとってくる。 memcachedはlibeventも必要らしい。 参考 http //tech.feedforce.jp/memcached.html rpm置き場は以下。 libevent http //dag.wieers.com/rpm/packages/libevent/ memcached http //dag.wieers.com/rpm/packages/memcached/ CentOS4 = RHEL4 なので、それのi686版をダウンロード。 # rpm -i --replacefiles --percent hogehoge.rpm でlibevent、memcachedの順にインストール。 memcached関連のモジュールをインストール memcachedをAPI経由でperlから扱えるようにするためのモジュールが Cache Memcached(すんなり入った) Cache Memcached Managed これ苦戦。普通にインストールするとmake testで失敗するので強制インストール。 cpan force install Cache Memcached Managed Catalyst関連のモジュールを入れる。 cpan install Catalyst Plugin Session Store Memcached
https://w.atwiki.jp/atwikimyj/pages/41.html
参考: http //www.rfs.jp/sb/perl/04/02.html 1.クラスは、パッケージ化されたモジュールの一種である。 2.パッケージ名がクラス名となる。 3.パッケージ内ではnewという名前のsubが必須である コンストラクタの作成 コンストラクタは、新しいオブジェクトを作成し、 そのリファレンスを返すメソッドです。クラス作成の順番は次のようになります。 newという名前でメソッドを定義する 第1引数のクラス名を受け取る bless関数でオブジェクトのリファレンスを返す 具体的には下記のようになります。 sub new{ # 暗黙のうちに引き渡されるクラス名を受け取る my $class = shift; # 無名ハッシュのリファレンスを作成 my $self = {}; # bless したオブジェクトリファレンスを返す return bless $self, $class; } blessした変数はクラスのオブジェクトに属することになるので、 普通の変数と区別するためにインスタンスと呼ばれます。ここでは単純に、 「blessの第1引数として指定した変数がインスタンス」とおぼえておいてください。 コンストラクタ・・・newメソッドでつくられたもの。クラスの名前を受け取る インスタンス・・・blessの第一引数で指定された変数。 bless インスタンス(new内で定義された変数のリファレンス),$class名(省略可能) 。 4.パッケージ内のsubがメソッドとなる。 ここで注意したいのは、このsubで普通に戻り値を渡せること。あまりよくないの だろうけど、、。 もちろんインスタンスの中の変数をいじるのが普通でおすすめ。 5.クラスを使う。 [1]newで新しいオブジェクトを作成する。 [2]オブジェクトから、subを呼び出す。 以上。
https://w.atwiki.jp/atwikimyj/pages/22.html
RSSファイルの解析(ついでにダウンロードも) RSSインスタンスの作成(XMLで記述された文字列を読ませて作る) RDF,RSS,ATOM形式でインスタンスを作成 その他いろいろできるみたいです。下記のサイトに親切丁寧に 説明があるのでそれを読むのが一番かと。 XML FeedPP http //www.kawa.net/works/perl/feedpp/feedpp.html#spec
https://w.atwiki.jp/atwikimyj/pages/59.html
emplate-Toolkitでのはまり、TIPSを記録する。 ◆リンク集 <参考> TTdoc 和訳ページ http //www.hakoniwa.net/tt/index.html TT超入門。これで基本がわかった http //www.sea-bird.org/doc/Solaris8/Perl_2.html サンプル http //bob.marlboro.edu/~msie/2001/ipl/perl/code/jan27/TemplateToolkit/ TTで使える関数プチ一覧。なんでもできそうだ。 http //hwat.sakura.ne.jp/hpod/200604/06-140134/ DBマガジンのサンプルプログラム 紙だけど、相当参考になった。 ◆TIPS (1)インストールにきをつけろ perlのサンプルスクリプト上では template というモジュール名になっているので PPMで template と指定してインストール。しかしこれはTTとは別のモジュールなのだ。 本当は template-toolkit でsearchして、この名前でインストールする必要があった、、、。 (2)イテレイト型のオブジェクトをそのままTTにぶんなげる $Sale_prod_list = MAGCLASS ObjectsTable - search( [ $criteria1 , $criteria2 , $criteria3, $criteria4 ],{ order_by = prod_sellrank } ); こんなふうに雑誌情報のオブジェクトを取得して、 my $template = Template- new; my $output; $template- process( teiki_make_index.html ,{ Sale_prod_list = $Sale_prod_list } ,$output); こうする。複数の雑誌情報を持つオブジェクトが teiki_make_index.html に投げられる。 これを受け入れる書式は [% WHILE ( sp = Sale_prod_list.next) -%] [% IF sp.prod_price != %] /価格:[% sp.prod_price %]円 [% END %] [% IF sp.prod_toku != %] /(特典あり) [% END %] [% END %] こんな感じ。まずWHILEでperlから渡されたSale_prod_listを受けるわけだけど 1つ1つ順番に読み込むようにSale_prod_list.nextと記述し、その1つ1つの オブジェクトはsp = Sale_prod_list.nextとすることでspに入る。 sp.prod_noなどとすることでオブジェクト内のハッシュを読み取れる。 注意点: ・WHILEやENDなどの書式は必ず大文字 ・条件式は必ずENDで閉めよう (3)作製されたHTMLについて $template- process( teiki_make_index.html ,{ Sale_prod_list = $Sale_prod_list } ,$output); と記述すると、$outputに作製されたHTMLが入る。 (テンプレート ,{ エイリアス= オブジェクト } , $出力先変数) という書式。注意点として、$outputではだめで、$outputとしなければならない) また、出力先変数を省略して $template- process( teiki_make_index.html ,{ Sale_prod_list = $Sale_prod_list } ); とすると自動的にprintされる。 以下いろんなサイトからのメモ ■HTMLファイルのエスケープ HTMLタグのエスケープしろという命令をテンプレートに記述できます。フィルター機能についてはTemplate Toolkit Manual Filtersに詳しく書いてありますが、例えば、 [% foo | html %]でfooの中身のHTMLタグをエスケープして出力してくれますし、 [% bar | html_line_break %]